Модели согласованности описывают, какие значения данных увидят клиенты при распределённых чтениях/записях.

Сильная

  • Линеаризуемость (linearizability): чтение после записи видит новое значение как будто операции выполнялись последовательно в реальном времени.

Ослабленные

  • Последовательная (sequential): все видят операции в одном порядке, но не обязательно по времени.

  • Причинно-следственная (causal): сохраняет причинные связи; нет единого глобального порядка.

  • Read-your-writes / monotonic reads: клиент видит свои записи и монотонно возрастающие состояния.

  • Eventual consistency: со временем значения сходятся; возможны устаревшие чтения.

Балансировка latency/consistency

  • CAP: при сетевом разделении выбираем между доступностью и сильной консистентностью.

  • PACELC: при разделении — CAP, без разделения — баланс latency vs consistency.

Что фиксировать

  • Требования к маршрутам: где нужна линеаризуемость (балансы/лимиты), где достаточно eventual (логирование/аналитика).

  • Параметры чтения/записи (кворумы), кэширование и допустимые устаревания.

  • Наблюдаемые эффекты: фантомы, устаревшие чтения, двойные события — и как компенсируем.

Последнее обновление